package com.whu.helpluojia.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.whu.helpluojia.common.BaseContext;
import com.whu.helpluojia.common.R;
import com.whu.helpluojia.dao.MessageDao;
import com.whu.helpluojia.domain.Message;
import com.whu.helpluojia.domain.dto.MessageDto;
import com.whu.helpluojia.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/message")
public class MessageController {

    @Autowired
    MessageService messageService;

    @GetMapping("/{id}/{page}")
    List<Message> getUserMessage(@PathVariable Long id, @PathVariable int page ){
        Long userId=BaseContext.getCurrentId();
        List<Message> messages = messageService.getUserMessage(userId, id, page);
        return messages;
    }

    @PostMapping()
    void sendMessage(@RequestBody Message message){
        messageService.addMessage(message);
    }

    @GetMapping
    List<MessageDto> getHomeMessage(){

        Long userId=BaseContext.getCurrentId();

        List<MessageDto> messages=messageService.getHomeMessage(userId);

        return messages;
    }

    @GetMapping("/admin")
    MessageDto[] getAdminMessage(){
        Long userId=BaseContext.getCurrentId();
        List<MessageDto> messageDtos=new ArrayList<>();
        messageDtos=messageService.getAdminMessage(userId);
        return messageDtos.toArray(new MessageDto[0]);
    }
}
